Nested Loops এবং Iteration Techniques
Nested loops এবং Iteration techniques প্রোগ্রামিং ভাষায় একটি বা একাধিক লুপের ভিতরে আরেকটি লুপ ব্যবহার করার জন্য ব্যবহৃত হয়। এটি প্রোগ্রামে একাধিক পদক্ষেপ বা কার্যাবলি একে অপরের সাথে সম্পর্কিত হওয়ার জন্য উপকারী হয়। COBOL প্রোগ্রামিং ভাষায় nested loops এবং iteration techniques কোডের কার্যকারিতা এবং পুনরাবৃত্তি (repetition) কাজ সহজ করে তোলে।
১. Nested Loops
Nested loops হল এমন লুপ যেখানে এক লুপের ভিতরে অন্য একটি লুপ থাকে। এতে, বাইরের লুপ একবার রান হওয়ার পর ভিতরের লুপ পুনরায় তার সমস্ত ইটারেশন (iteration) সম্পন্ন করে। এই ধরনের লুপ প্রয়োজনীয় যখন আপনার একাধিক ভিন্ন শর্ত বা সেগমেন্টের উপর একাধিক বার কাজ করতে হয়।
১.১ Nested Loops এর গঠন
PERFORM VARYING index1 FROM 1 BY 1 UNTIL index1 > 5
PERFORM VARYING index2 FROM 1 BY 1 UNTIL index2 > 3
DISPLAY "index1 = " index1 " , index2 = " index2
END-PERFORM
END-PERFORMএখানে, বাইরের লুপ index1 এর মান ১ থেকে ৫ পর্যন্ত বাড়াচ্ছে এবং ভিতরের লুপ index2 এর মান ১ থেকে ৩ পর্যন্ত বাড়াচ্ছে। ভিতরের লুপ প্রতিবার বাইরের লুপের এক ইটারেশন সম্পন্ন হওয়ার পরে শুরু হবে। এই ধরনের লুপ ব্যবহার করা হয় যখন বিভিন্ন শর্তের উপর একাধিক বার কাজ করতে হয়।
১.২ Nested Loops এর উদাহরণ
ধরা যাক, একটি ম্যাট্রিক্সের সব এলিমেন্ট প্রিন্ট করতে চাই:
01 matrix.
05 row OCCURS 5 TIMES.
10 column OCCURS 3 TIMES PIC 9(3).
MOVE 1 TO matrix (1, 1)
MOVE 2 TO matrix (1, 2)
MOVE 3 TO matrix (1, 3)
MOVE 4 TO matrix (2, 1)
MOVE 5 TO matrix (2, 2)
MOVE 6 TO matrix (2, 3)
PERFORM VARYING i FROM 1 BY 1 UNTIL i > 5
PERFORM VARYING j FROM 1 BY 1 UNTIL j > 3
DISPLAY "matrix (" i "," j ") = " matrix (i, j)
END-PERFORM
END-PERFORMএখানে, ৫টি সারি এবং ৩টি কলামের ম্যাট্রিক্স তৈরি করা হয়েছে এবং প্রতিটি এলিমেন্টকে প্রিন্ট করা হচ্ছে। বাইরের লুপ সারির উপর কাজ করে, এবং ভিতরের লুপ কলামের উপর কাজ করে।
২. Iteration Techniques
Iteration techniques হল সেই কৌশল যা একটি নির্দিষ্ট কাজ পুনরায় একাধিক বার সম্পাদন করতে ব্যবহৃত হয়। কোডে বার বার একই কাজ করার জন্য loops (যেমন: FOR, WHILE, DO WHILE) ব্যবহার করা হয়। COBOL-এ বিভিন্ন ধরনের iteration techniques ব্যবহার করা যায়, যেমন:
২.১ VARYING Statement ব্যবহার করা
COBOL এ VARYING স্টেটমেন্ট লুপের পরিবর্তনশীল ইনডেক্স চালানোর জন্য ব্যবহৃত হয়। এটি প্রোগ্রামের একটি বা একাধিক মান পরিবর্তন করার জন্য সহায়ক।
PERFORM VARYING index FROM 1 BY 1 UNTIL index > 5
DISPLAY "Index = " index
END-PERFORMএটি ১ থেকে ৫ পর্যন্ত index এর মান পরিবর্তন করে এবং প্রতি পদক্ষেপে প্রদর্শন করে।
২.২ PERFORM Statement ব্যবহার করা
COBOL এ PERFORM স্টেটমেন্ট দিয়ে কোনও একাধিক কাজ পুনরায় চালানো যায়। এটি একটি বিশেষভাবে নির্ধারিত কাজের পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়।
PERFORM TASK-1
PERFORM TASK-2
PERFORM TASK-3এখানে, TASK-1, TASK-2, এবং TASK-3 নামে তিনটি পৃথক কাজ একে একে সম্পন্ন হবে।
২.৩ WHILE Loop
WHILE লুপ ব্যবহৃত হয় যখন শর্ত মেটানো না হওয়া পর্যন্ত কোড চলতে থাকে। COBOL-এ PERFORM UNTIL এর মাধ্যমে একটি WHILE লুপের মতো কাজ করা সম্ভব।
PERFORM UNTIL counter > 5
DISPLAY "Counter = " counter
ADD 1 TO counter
END-PERFORMএখানে, counter এর মান ৫ এর বেশি না হওয়া পর্যন্ত PERFORM লুপ চলতে থাকবে এবং প্রতি ইটারেশনে counter এর মান বাড়ানো হবে।
৩. Iteration Techniques এর সুবিধা
- কোডের পুনরাবৃত্তি: একাধিক কাজ বা শর্তের উপর একাধিক বার কোড চালানো সহজ হয়।
- কোডের পাঠযোগ্যতা: Nested loops এবং iteration techniques কোডের পাঠযোগ্যতা এবং পরিষ্কারতা বৃদ্ধি করে।
- বড় ডেটা প্রক্রিয়াকরণ: বড় ডেটাসেট বা ম্যাট্রিক্সের উপরে কাজ করার জন্য এটি অত্যন্ত কার্যকরী।
সারসংক্ষেপ
Nested Loops এবং Iteration Techniques COBOL প্রোগ্রামিং ভাষায় গুরুত্বপূর্ণ কন্ট্রোল স্ট্রাকচার যা প্রোগ্রামের কার্যকরিতা বৃদ্ধি করে এবং একাধিক শর্তের উপর কাজ করার সুবিধা দেয়। Nested loops বিভিন্ন লুপের মধ্যে একাধিক ইটারেশন সম্পাদন করতে ব্যবহৃত হয়, এবং iteration techniques লুপের মাধ্যমে কোডের পুনরাবৃত্তি সক্ষম করে। এই কৌশলগুলি বড় এবং জটিল প্রোগ্রামে কার্যকারিতা এবং দক্ষতা বাড়ানোর জন্য অপরিহার্য।
Read more